package com.yonyou.brigade.third_parties.zteitc.service;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yonyou.brigade.basic_init.model.BriChannel;
import com.yonyou.brigade.third_parties.zteitc.model.ZteUser;

import java.util.List;


/**
 * Created by Administrator on 2018/12/24.
 */
public interface IZteitcPublicService {
    /**
     * 创建用户
     *
     * @param tenant  租户ID
     * @param org     组织
     * @param zteUser 用户
     * @return
     */
    JSONObject createUser(String tenant, String org, ZteUser zteUser);

    String ssoLogin(ZteUser zteUser, String type, JSONObject configJSON);

    /**
     * 根据方法名查询订单
     * @param tenant
     * @param orgpk
     * @param startDate
     * @param endDate
     * @param method
     * @return
     */
    JSONObject findOrdersByMethod(String tenant, String orgpk, String startDate, String endDate, String method);

    /**
     * 查询结算信息
     * @param tenant    租户ID
     * @param orgpk     组织PK
     * @param periodName  账期时间
     * @return
     */
    JSONArray findStatements(String tenant, String orgpk,String periodName);

    /**
     * 查询结算单订单明细
     *
     * @param tenant    租户id
     * @param orgpk     组织PK
     * @param billNum   结算单号
     * @return
     */
    JSONArray findStatementsDetail(String tenant, String orgpk,String billNum);

    void syncZteitcSingleUserByPhone(List<ZteUser> zteUsers, BriChannel briChannel);

    /**
     * 向中兴推送申请单
     *
     * @param channel
     * @param tenant
     * @param orgpk
     * @param applyOrderJson
     * @return
     */
    JSONObject pushApplyOrder(BriChannel channel, String tenant, String orgpk, JSONObject applyOrderJson);

    /**
     * 申请单关闭
     *
     * @param applicationNumber 申请单号
     * @param channel     配置信息
     * @return
     */
    List closeApplyOrder(String applicationNumber, BriChannel channel);


//    /**
//     * 批量同步部门
//     *
//     * @param param    租户ID,组织PK
//     * @param briChannel    开通信息
//     */
//    Object syncDepatement(BriChannel briChannel , JSONObject param);
//
//    /**
//     * 同步部门
//     *
//     * @param departmentArr     部门列表
//     * @param briChannel    开通信息
//     */
//    void syncZteitcDepartment(JSONArray departmentArr, BriChannel briChannel);

}
